<?php

/**
 * \file
 * Librairie de gestion du cache des blocs instanciés.
 */

/**
 * Gestion du cache des blocs instanciés.
 */
namespace pilar\blocks\cache /* \cond */ ; /* \endcond */
{
 
/**
 * Supprime le cache de plusieurs instances d'un même bloc en fonction
 * de leurs paramètres de contenu.
 * 
 * Pour supprimer un cache on supprime le fichier qui lui est associé.
 * 
 * Attention à l'ordre des paramètres.
 * 
 * \version 1.0
 * \date 18/06/2008
 * \author Matthieu OVIEDO <matthieu.oviedo@gmail.com>
 * \param $cachePath
 *  Chemin d'accès relatif du dossier de cache concerné.
 * \param $filterParams
 *  Filtre de sélection sur les paramètres de contenu des instances.
 */
function clean($cachePath, $filterParams) {
 // Génération du masque de recherche :
  $inner = array();
  foreach ($filterParams as $name => $value) {
   // La fonction "urlencode" est utilisée pour échapper les données
   // sensibles :
    $inner[] = urlencode($name).'='.urlencode($value);
  }
  $mask = '*?'.implode('?*?', $inner).'?*';
 //
  foreach (glob($cachePath.'/'.$mask) as $filename) {
   unlink($filename);
  }
}

}

?>
